#ifndef __RESTRICCIONES_FACTORY_H__
#define __RESTRICCIONES_FACTORY_H__

#include "ContextoDeEjecucion.h"
#include "ParserYAML.h"

using namespace std;
using namespace parser;
using namespace modelo;

namespace servicios {

	class RestriccionesFactory 
	{
	public:
		RestriccionesFactory(ContextoDeEjecucion* contexto);
		~RestriccionesFactory(void);

		InformacionRestriccionesDeterministicas* Construir(InformacionRestriccionesDeterministicasYAML restriccionYAML);
		InformacionRestriccionesNoDeterministicas* Construir(InformacionRestriccionesNoDeterministicasYAML restriccionYAML);

	private:
		ContextoDeEjecucion* contexto;

		list<InformacionMateria*> Construir(list<string> materiasOptativasYAML);
		list<DisponibilidadHorariaDiaria*> Construir(list<DisponibilidadHorariaDiariaYAML> disponibilidadHorariaYAML);
	};
}
#endif